<?php
namespace Admin\Model;
use Think\Model;
class GoodsModel extends Model {
    /**
     * 自动完成
     * @var array
     */
    protected $_auto = array(
        array('created_time','mytime',3,'callback'),
        array('updated_time','time',3,'function'),
    );

    /**
     * 字段映射
     * @var array
     */
    protected $_map = array(
        'name' =>'goods_name',               // 把表单中name映射到数据表的username字段
    );

    /**
     * 自动验证
     * @var array
     */
    protected $_validate = array(
        array('goods_name','require','商品名称必须填写！'),
        array('goods_name','','商品名称已经存在！',1,'unique',3),
    );

    /**
     * 自定义回调函数
     * @param null $date
     * @return false|int
     */
    protected function mytime($date = null) {
        // 有选择时间就用选择时间，否则用默认
        if ($date){
            return strtotime($date);           // 把时间格式化字符串转成时间戳
        }
        return time();
    }

    /**
     * 获取分页类数据
     * @param $firstRow
     * @param $listRows
     * @return mixed
     */
    public function getList($firstRow, $listRows)
    {
        return $this->field('goods_id,goods_name,goods_price,goods_number,goods_small_logo,sale_time,is_show')->limit($firstRow . ',' . $listRows)->select();
    }

    /**
     * 上传方法
     * @return array
     */
    public function upload()
    {
        if ($_FILES['goods_big_logo']['error'] == 0) {
            // 图片处理
            $config = array(
                'maxSize'   => 3145728,                              // 文件大小
                'rootPath'  => './Public/Uploads/',                  // 保存图片的根路径
                'savePath'  => 'Goods/',                             // 保存路径
                'exts'      => array('jpg', 'gif', 'png', 'jpeg'),   // 文件类型
            );
            $upload = new \Think\Upload($config);                    // 实例化上传类
            $info   = $upload->uploadOne($_FILES['goods_big_logo']); // 上传文件
            $src    = $info['savepath'] . $info['savename'];         // 大图
            $image  = new \Think\Image();                            // 生成缩略图
            $data   = [];                                            // 声明一个空数组用来保存数据
            $image->open($config['rootPath'] . $src);      // 打开原图片
            $thumb  = $info['savepath'] . 'm_' . $info['savename'];  // 缩略图路径
            $image->thumb(200,200, 2)
                ->save($config['rootPath'] . $thumb);                // 生成缩略图指定路径保存
            $data['src']   = $src;
            $data['thumb'] = $thumb;
            return $data;                                            // 返回图片数据
        }
    }
}